﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;

namespace log4net.webform
{
    public class Global : System.Web.HttpApplication
    {
        /// <summary>
        /// 使用log4net必须要显示调用配置，显示的调用配置有两种方法：
        /// 1，使用特性配置，在程序集的AssemblyInfo.cs文件中配置 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
        /// 2，在使用log4net之前或应用程序的启动点显示调用log4net.Config.XmlConfigurator类相应方法配置
        /// 上述两个配置区别如下(拿典型的web程序说明)：
        /// 第二种方法的优点，就是肯定能保证web程序启动的时候读取到配置文件，第一种情况却是配置不一定读取得到(winform,console等所有的都有这个情况)。
        /// 因为程序启动的时候，可能有很多程序集(特别是第三方组件)使用了Log4net,这时就是最先使用Log4net的程序集会把repositoryName占了
        /// 而任何一个程序集默认都是用的默认存储库名字，所以造成在AssemblyInfo.cs配置程序集可能会读取不能配置信息，当然看程序执行的先后情况
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure();
        }

        protected void Session_Start(object sender, EventArgs e)
        {

        }

        protected void Application_BeginRequest(object sender, EventArgs e)
        {

        }

        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {

        }

        protected void Application_Error(object sender, EventArgs e)
        {

        }

        protected void Session_End(object sender, EventArgs e)
        {

        }

        protected void Application_End(object sender, EventArgs e)
        {

        }
    }
}